package com.ssy.lingxi.common.constant.basic;

import com.ssy.lingxi.common.language.LanguageHolder;

import java.util.Arrays;

/**
 * 资金归集模式枚举
 * @author 万宁
 * @version 2.0.0
 * @date 2021-08-04
 */
public enum FundModeEnum {
    /**
     * 平台代收模式 - 1
     */
    PLATFORM_EXCHANGE(1, "平台代收"),

    /**
     * 会员直接到账模式 - 2
     */
    DIRECT_TO_ACCOUNT(2, "会员直接到账");

    FundModeEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    private Integer code;
    private String name;

    public Integer getCode() {
        return code;
    }

    public String getName() {
        return LanguageHolder.getName(this.getDeclaringClass(), this.getCode());
    }

    /**
     * 转换为枚举
     * @param code 枚举值
     * @return 枚举
     */
    public static FundModeEnum parse(Integer code) {
        return Arrays.stream(FundModeEnum.values()).filter(v -> v.getCode().equals(code)).findFirst().orElse(null);
    }

    /**
     * 根据枚举值获得名称
     * @param code 枚举值
     * @return 名称
     */
    public static String getNameByCode(Integer code) {
        return Arrays.stream(FundModeEnum.values()).filter(v -> v.getCode().equals(code)).map(FundModeEnum::getName).findFirst().orElse("");
    }
}
